﻿using BonjourQuotation.UI.Models.BaseModel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Web;
using System.Web.WebPages.Html;

namespace BonjourQuotation.UI.Models.PartialModel
{
    public class OperationRoomGridViewModel : UserAllPermissionsViewModel
    {
        public List<OperationRoomGridRowViewModel> Rows { get; set; }
        public string OperRoomMessageInfo { get; set; }
        public List<OperationRoomGridGirRowViewModel> GirRows { get; set; }
        // public List<OperTitleInfoViewModel> Titles { get; set; }
        public List<SelectListItem> RoomTitles { get; set; }
        [DisplayName("Pax:")]
        public string TotalPax { get; set; }
        [DisplayName("Room(s):")]
        public string TotalRooms { get; set; }
        [DisplayName("SGL:")]
        public string TotalSgl { get; set; }
        [DisplayName("DBL:")]
        public string TotalDbl { get; set; }
        [DisplayName("TWN:")]
        public string TotalTwn { get; set; }
        [DisplayName("TRPL:")]
        public string TotalTrpl { get; set; }
        [DisplayName("QUD:")]
        public string TotalQud { get; set; }
        [DisplayName("Guide:")]
        public string TotalGuide { get; set; }
        [DisplayName("Driver:")]
        public string TotalDriver { get; set; }
        
        public int RoomPageNumber { get; set; }
        // Room type filter
        public List<CheckBoxControlViewModel> RoomFilterRoomType { get; set; }
        public List<CheckBoxControlViewModel> RoomFilterSelRoomType { get; set; }
        public List<string> SelectedRoomFilterRoomType { set; get; }
        // Room title filter
        public List<CheckBoxControlViewModel> RoomFilterRoomTitle { get; set; }
        public List<CheckBoxControlViewModel> RoomFilterSelRoomTitle { get; set; }
        public List<string> SelectedRoomFilterRoomTitle { set; get; }
        // Customer
        public List<CheckBoxControlViewModel> RoomFilterCustomer { get; set; }
        public List<CheckBoxControlViewModel> RoomFilterSelCustomer { get; set; }
        public List<string> SelectedRoomFilterCustomer { set; get; }
        // Filter Remove
        public bool RoomIsRemoveFilterDivShow { set; get; }
        public bool RoomIsRemoveCustomerCodeFilter { set; get; }
        public bool RoomIsRemoveRoomTypeFilter { set; get; }
        public bool RoomIsRemoveRoomTitleFilter { set; get; }
        
        // Hide Show
        public bool ViewRoomGroupCode { set; get; }
        public bool ViewRoomGroupName { set; get; }
        public bool ViewRoomCustomer { set; get; }
        public bool ViewRoomPax { set; get; }
        public bool ViewRoomType { set; get; }
        public bool ViewRoomPaxRoom { set; get; }
        public bool ViewRoomTitle { set; get; }
        public bool ViewRoomNames { set; get; }
        public bool ViewRoomNotes { set; get; }
        public bool ViewRoomFullBoard { set; get; }
        public bool ViewRoomFullBoardCount { set; get; }
        // for filtering, update, dup, remove, new line, Search
        public bool IsRoomFilter { set; get; }
        public bool IsRoomView { set; get; }
        public bool IsRoomUpdate { set; get; }
        public bool IsRoomSearch { set; get; }
        public bool IsRoomRemove { set; get; }
        // remove
        public int RemoveGroupID { get; set; }
        public int RemoveLineNo { get; set; }
        // grid drop down values
        public List<SelectListItem> RoomType { get; set; }
        public List<SelectListItem> RoomTitle { get; set; }
       
        public List<SelectListItem> RoomTitleSingle { get; set; }
        public List<SelectListItem> RoomTitleDouble { get; set; }
        public List<SelectListItem> RoomTitleTwin { get; set; }
        public List<SelectListItem> RoomTitleTriple { get; set; }
        public List<SelectListItem> RoomTitleQuad { get; set; }
        public List<SelectListItem> RoomTitleDriver { get; set; }
        public List<SelectListItem> RoomTitleGuide { get; set; }

        // Group Name,Code, Customer search
        public string RoomGroupNameTxt { get; set; }
        public string RoomGroupCodeTxt { get; set; }
        public string RoomCustomerTxt { get; set; }
        public int RoomGroupIDTxt { get; set; }
        // Is Gir
        [DisplayName("Gir")]
        public bool? IsGir { get; set; }
        // Quota
        [DisplayName("Quota #")]
        public string RoomGroupQuotaID { get; set; }
    }
    [Serializable]
    public class OperationRoomGridRowViewModel
    {
        public bool RoomRowCheck { get; set; }
        public int RoomGroupID { get; set; }
        public int RoomLineNo { get; set; }
        public string RoomGroupName { get; set; }
        public string RoomGroupCode { get; set; }
        public string RoomCustomer { get; set; }
        public int RoomCustomerId { get; set; }  
        public string RoomNoOfPerson { get; set; }
        public string RoomSelectedRoomType { get; set; }
        public string RoomType { get; set; }
        public string RoomDelete { get; set; }
        public string RoomNumOfPersonRoom { get; set; }
        public string RoomSelectedRoomTitle { get; set; }
        public string RoomNames { get; set; }
        public string RoomNotes { get; set; }
        public string RoomFullBoard { get; set; }
        public string RoomFullBoardCount { get; set; }
       
    }
    [Serializable]
    public class OperationRoomGridGirRowViewModel
    {
        public string GirCustomerName { get; set; }
        public int GirFullBoardCustomerID { get; set; }
        public string GirPax { get; set; }
        public string GirFullBoardCount { get; set; }
        public string GirSSupCount { get; set; }
        public string GirPerPrice { get; set; }
        public string GirFullBoardPrice { get; set; }
        public string GirSingleSupPrice { get; set; }
        public string GirPerPriceCad { get; set; }
        public string GirFullBoardPriceCad { get; set; }
        public string GirSingleSupPriceCad { get; set; }
        public int GirFullBoardGroupID { get; set; }
    }
}